#!/usr/bin/env bash
# 这个文件中的函数可能部分来源于dylanaraps的pure-bash-bible项目。其中一些可能已经有所修改，详细请参考其原项目（地址： https://github.com/dylanaraps/pure-bash-bible）。

# 删除重复的数组元素
remove_array_dups() {
    # 用法：remove_array_dups "array"
    declare -A tmp_array
    for i in "$@"; do
        [[ $i && ! ${tmp_array["$i"]} ]] &&  tmp_array["$i"]=1 && printf '%s\n' "$i"
    done
}

# 反转数组
reverse_array() {
    # 用法：reverse_array "array"
    shopt -s extdebug
    f()(printf '%s\n' "${BASH_ARGV[@]}"); f "$@"
    shopt -u extdebug
}

# 随机返回一个元素
random_array_element() {
    # 用法：random_array_element "array"
    local arr=("$@")
    printf '%s\n' "${arr[RANDOM % $#]}"
}

# 取出数组最后n个元素
last_array_element() {
    # 用法：last_array_element n "array"
    (( $#-$1+1 > 1 )) && printf '%s\n' "${@:$#-$1+1:$1}"
}